<?php

// 框架核心文件

define('COMMON_PATH', CORE_PATH."/common");

define('LIB_PATH', CORE_PATH."/lib");

define('STATIC_PATH', PUBLIC_PATH."/static");

/////////////////
// 1 加载配置与全局函数 //
/////////////////

include COMMON_PATH."/functions.php";

// 2  解析路由
// 
// 注册自动加载函数 
function __autoload($classname)
{
	$paths = [
		CONTROLLER_PATH.'/'.$classname.".php",
		MODEL_PATH.'/'.$classname.".php",
		LIB_PATH.'/'.$classname.".php",
	];
	
	foreach ($paths as  $path) {
		if(file_exists($path)){
			include $path;
		}
	}
}
// 解析模块
$modules = isset($_GET['m']) ? strtolower($_GET['m']) : config('default_modules');

$controller = isset($_GET['c']) ? ucfirst(strtolower($_GET['c'])) : config('default_controller');

$action = isset($_GET['a']) ? strtolower($_GET['a']) : config('default_action');

// 定义模块 控制器 动作名
define('MODULES_NAME', $modules);
define('CONTROLLER_NAME', $controller);
define('ACTION_NAME', $action);

// 定义 模块 控制器 视图 模型 目录
define('MODULES_PATH', APP_PATH."/".$modules);

define('CONTROLLER_PATH', MODULES_PATH."/controller");
define('MODEL_PATH', MODULES_PATH."/model");
define('VIEW_PATH', MODULES_PATH."/view");

// include CONTROLLER_PATH."/User.php";
// include CONTROLLER_PATH."/Login.php";

// var_dump(get_defined_constants(true)['user']);
// 3 创建控制器
$obj = new $controller(); 
// 4 创建动作
$obj->$action();